/**
 * 护盾类
 */

export class Shield {
    /**
     * 
     * @param value 护盾的强度
     */
    constructor(private value: number) {

    }
    get() {
        return this.value;
    }
    /** 使用护盾，对伤害 n 进行抵消，返回抵挡后的 n */
    use(hurtValue: number) {
        if (this.test(hurtValue) === this.value) {// 不能完全抵挡的情况
            this.value = 0;
            return hurtValue - this.value;
        } else { // 能完全抵挡的情况
            this.value -= hurtValue;
            return 0
        }
    }
    /** 测试护盾对于伤害 n 最大抵消伤害值。返回的最大值不会超过当前护盾量 */
    test(n: number) {
        return this.value - n < 0 ? this.value : n - this.value;
    }
}